【精选】vector的常见用法详解 |
您所在的位置:网站首页 › result vector函数的作用 › 【精选】vector的常见用法详解 |
目录
vector的定义vector容器内元素的访问vector常用函数vector的常见用途
vector翻译为向量,但是这里使用“变长数组”的叫法更容易理解,也即“长度根据需要而自动改变的数组”。在考试题中,有时会碰到只用普通数组会超内存的情况,这种情况使用vector会让问题的解决便捷许多。另外, vector还可以用来以邻接表的方式储存图,这对无法使用邻接矩阵的题目(结点数太多)、又害怕使用指针实现邻接表的读者是非常友好的写法也非常简洁。 需要的头文件: #include需要的其他东西: using namespace std; vector的定义vector的定义的格式: vector name;上面这个定义其实相当于是一维数组name[ SIZE ],只不过其长度可以根据需要进行变化, 比较节省空间,说通俗了就是"边长数组"。 和一维数组一样,这里的typename 可以是任何基本类型,例如: int 、double 、char、结构体等,也可以是STL标准容器, 例如 vector 、set、queue等。需要注意的是,如果typename也是一个STL容器,定义的时候要记得在 >> 符号之间加上空格, 因为一些使用C++ 11之前标准的编译器会把它视为移位操作,导致编译错误。 例子: #include #include using namespace std; struct student { int age; char name[20]; }; int main(void) { vector a; vector b; vector c; vector d; return 0; }如果typename 是vector,就是下面这样定义: vector name;// >>之间要加空格
定义vector数组的方法: vector Arrayname[arraySize];
vector一般有两种访问方式 , 通过下标访问或通过迭代器访问。 一、通过下标访问 和访问普通的数组是一样的,对一个定义为vector vi 的容器来说 直接访问vi[ index ] 即可(如vi[0]、vi[1])。当然这里的下标是从0 到 vi.size()-1。 访问这个范围外的元素可能会出错。 这样it 就是一个vector:: iterator型的变量,其中 typename 就是定义vector时填写的类型。 下面是typename为int和 double 类型的举例: vector ::iterator it; vector ::iterator it;这样就得到了迭代器it,并且可以通过 *it 来访问vector里的元素 除此之外,迭代器还实现了两种自加操作: ++it 和 it++ 于是有了另一种遍历vector中元素的写法: 最后需要指出,在常用STL容器中,只有在vector和string中,才允许使用vi.begin()+3这种迭代器加上整数的写法。 vector常用函数(1) push_back() 顾名思义,push_back(x)就是在vector后面添加一个元素x,时间复杂度为O(1)。 (4) clear() clear()用来清空vector中的所有元素,时间复杂度为O(N),其中N为vector中元素的个数。
(1)存储数据 vector本身可以作为数组使用,而且在一些元素个数不确定的场合可以很好地节省空间。有些场合需要根据一些条件把部分数据输出在同一行,数据中间用空格隔开。 由于输出数据的个数不确定的,为了更方便地处理最后一个满足条件地数据后面不输出额外地空格,可以先用vector记录所有需要输出的数据,然后一次输出。(2)用邻接表存储图 使用vector实现邻接表可以让一些对指针不太熟悉的读者有一个比较方便的写法。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |